APMツールをどうシステムに統合するか探るOpenAPM landscapeの紹介
こんにちは。
OSS大好きなshoitoです。
JavaアプリやGoアプリのメトリクスを採取するのに、どのツールをどうつなげていったらイイんだろう?
Elasticsearchの下流にはKibana以外にどんなの考えられるんだろう?
今日はこのような疑問を抱えている人に役立つOpenAPM landscapeを紹介します。
OpenAPM landscape
OpenAPM landscapeは、オープンソースのAPM(Application Performance Management)ツールが構築・運用している技術スタックに適しているかを探れるOpenAPMが提供しているWebのツールです。
多分、何を言ってるのか分かりにくいと思うので、ちょっとでも興味を持っていただけたら、こちらのURLから実際にOpenAPM landscapeを試してみてください。
OpenAPM landscapeを触ってみる
Learn how to use the landscape
のボタンを押すと使い方の説明が見られます。
説明を見ずに、画面したのアイコンを選択して、描き始めてもかまいません。
100以上のツールがカテゴリ毎に並んでいるので、例えば java
, metrics
のようにフィルタして、適しているものを絞り込むのが良いと思います。
ツールのアイコンを選択していくと、選択可能な接続先と接続元の情報に従い、自動的に図が描画されていきます。
また、接続先や接続元として選択可能なツールが何か探るということも可能です。
最終的に、描かれた図はURLを発行して、ツイッターやFacebook、Wikiなどで共有可能ですし、PNG画像としてダウンロードも可能です。
こんな感じのURLになります。
https://openapm.io/landscape?agent=elastic-apm-agent,elastic-beats&collector=elastic-apm,jaeger-collector,jaeger-agent&storage=elasticsearch&visualization=kibana,jaeger-query&dashboarding=kibana,grafana&instrumentation-lib=micrometer,jaeger-client
URLをクリックしていただくと、Elastic, Micrometer, Jaegerなどが繋がった、このような図が例として見られます。
おまけ
OpenAPM landscapeのデータモデルを別のツール郡にも応用できるんじゃないか?と思い、GitHubのソースコードを少し覗いてみました。
https://github.com/openapm/landscape-model
ロゴはlogosディレクトリにまとめられています。
https://github.com/openapm/landscape-model/tree/master/logos
モデルの例として、jaeger-collectorを見てみます。
https://github.com/openapm/landscape-model/blob/master/model/components/jaeger.yml#L62
logoの画像が描画され、connections.dataTo, connections.dataFromの定義に列挙されているツールが、OpenAPM landscape上でサジェストされていたのが分かりますね。
さすがに、レンダラの部分はOSSにはなっていませんでした。
最後に
OSS、またはそれ以外問わず、様々なツール群があり、自分が構築・運用しているサービスにどう適用できるのかイメージが掴みにくいことがありますが、OpenAPM landscapeに当てはめて見ることで、ツールの認識を改めたり、チームのメンバーに説明する際の手助けになりそうです。